OSI 模型由 ISO 與 IEEE 共同制訂的 ISO/IEC 7498:Open Systems Interconnection 標準定義,由下而上共計有以下七層:
OSI 七層模型,圖片來源:什麼是 OSI 模型?
為最基礎、最基本的一層,主要為以傳輸資料為功能的實體設備(介質),例如纜線、開關等,能使資料能以二進位模式(0 和 1)利用介質進行傳輸。
常見的實體設備有光纖、乙太網路線、RJ-45 接頭、Cable 同軸電纜等。
負責尋找位置、錯誤控制,並將網路層上的封包(Packet)分解為訊框(Frame),訊框內包含了實體位置(MAC)、傳輸資料、檢查碼等內容,透過 MAC 位置正確傳輸資料。
常見的實體設備有 Switch、網卡,由於近年 Switch 功能多樣化,此處的 Switch 僅指 L2 Switch。
負責在兩個不同網路間尋找與決定傳輸路徑,此步驟稱為路由(Routing),並且會將傳輸層中的區段(Segment)分解為封包(Packet),封包內的 Network Header 包含來源端與目的端的 IP 位置,於到達目的地時再重新組合。
網路層包含了各種傳輸協定,如 IP、ICMP、IPsec 等,常見的設備即為路由器(Router)。
負責裝置間埠對埠(Port to Port)的通訊,常見的傳輸層協定即為 TCP/UDP 協定。
TCP(傳輸控制協定,Transmission Control Protocol)將會透過三向交握(Three-Way Handshake)建立連線,並確認前一個封包已經被正確接收後,才會繼續傳輸下一個封包,具有錯誤檢查與修正、流量控制功能。
若傳輸方未收到接收方的回應,傳輸方將會重新傳輸封包,也因為具有可靠傳輸的特性,因此傳輸速度較慢,適用於要求可靠正確的服務使用,例如網頁瀏覽(HTTP、HTTPS)、電子郵件(IMAP、POP3)等。
UDP(使用者資料包協定,User Datagram Protocol)會將封包以串流方式傳輸,會以最快速度傳輸,不會向目的端確認資料是否已經被正常接收,也不具有錯誤檢查與修正、流量控制等功能,因此不是可靠的傳輸方式。
總而言之,TCP/UDP 的運作方式可以用這張圖表示:
圖片來源:TCP vs UDP Meme Version
主要功能為 Session 建立與關閉連結,確保 Session 開啟時間足夠傳輸資料,也能於傳輸完成後關閉 Seesion 避免浪費資源。
此層也提供了檢查點的功能,確認上一個檢查點至今的資料是否有錯誤,如有錯誤則會將此期間的資料重新傳輸。
常見的協定有:H.245、NetBIOS、PAP 等。
將傳送端的資料轉換為與目的端相容並適合傳輸的格式,包含編碼轉譯、加密、壓縮等功能。
為使用者與電腦直接接觸的層面,提供使用者所需要的各種功能,包含了各種網路應用服務,常見的協定有 HTTP/HTTPS、IMAP/POP3、SMTP、DNS、SSH、Telnet 等常見由應用程式使用的協定皆屬於應用層。
TCP/IP 模型為 OSI 模型的簡化版本,由下到上共計有以下四層: